2020-05-22 18:32:36
class Solution {
/**
* @param Integer[] $nums
* @return Integer[][]
*/
function permuteUnique($nums) {
$numsLen = count($nums);
//回溯
if(1 === $numsLen) {
return array($nums);
}
$arr = array();
$uniqueArr = array();
//遍历当前所有数字,轮流当头牌
foreach($nums as $itemNum){
if(in_array($itemNum, $uniqueArr)){
continue;
}else{
$uniqueArr[] = $itemNum;
}
$itemArr = $nums;
//删除当前数字
unset($itemArr[array_search($itemNum, $itemArr)]);
//递归
foreach($this->permuteUnique($itemArr) as $resArr) {
array_unshift($resArr, $itemNum);
$arr[] = $resArr;
}
}
return $arr;
}
}